Directly reflective meta-programming
نویسنده
چکیده
Existing meta-programming languages operate on encodings of programs as data. This paper presents a new meta-programming language, based on an untyped lambda calculus, in which structurally reflective programming is supported directly, without any encoding. The language features call-by-value and call-by-name lambda abstractions, as well as novel reflective features enabling the intensional manipulation of arbitrary program terms. The language is scope safe, in the sense that variables can neither be captured nor escape their scopes. The expressiveness of the language is demonstrated by showing how to implement quotation and evaluation operations, as proposed by Wand. The language’s utility for meta-programming is further demonstrated through additional representative examples. A prototype implementation is described and evaluated.
منابع مشابه
Directly Reflective Meta - Programming ∗ Aaron
Existing meta-programming languages operate on encodings of programs as data. This paper presents a new meta-programming language, based on an untyped lambda calculus, in which structurally reflective programming is supported directly, without any encoding. The language features call-by-value and call-by-name lambda abstractions, as well as novel reflective features enabling the intensional man...
متن کاملAn Object-Oriented Reflective Approach to Mobile-Aware Network Programming
Current distributed environments introduce reflection by providing an introspective interface for accessing component properties. Such interfaces provide the ability to dynamically compose and send well-formed messages to advertised distributed services on a network. However, mobile systems require more than the ability to dynamically access these services; they require a mechanism for transpar...
متن کاملAlbedo A meta-object infrastructure for Smalltalk
Reflection in the object-oriented paradigm became prominent after the publication of Pattie Maes' thesis on Computational Reflection. In her thesis Maes provides a framework for introducing computational reflection into the object-oriented paradigm. Maes observed that "it must be said that the concept of reflection fits most naturally in the spirit of object-oriented programming". In an attempt...
متن کاملTowards Linguistic Symbiosis of an Object-Oriented and a Logic Programming Language
Reflective systems have a causally connected (metalevel) representation of themselves. Most reflective systems use the same language to reason about their metalevel representation as the language that is used to reason about their domain. In symbiotic reflection a different language is used at the metalevel. The practical usability of this symbiotic reflection is enhanced if a linguistic symbio...
متن کاملLanguage Symbiosis through Symbiotic Reflection
Meta-programming is the act of using one system or language to reason about another one. Reflection describes systems that have access to and change a causally connected representation of themselves, hence leading to self-extensible systems. In reflective languages, only one language is used, while in meta-programming two languages play a role (the base language and the meta language). In this ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Higher-Order and Symbolic Computation
دوره 22 شماره
صفحات -
تاریخ انتشار 2009